require 'digest/sha2'
class Usuario < ActiveRecord::Base
  validates_uniqueness_of :username

  #Sobreescribimos el metodo '=' de la contraseña para usar salted_hash
  def clave=(clave)
    sal = [Array.new(6){rand(256).chr}.join].pack("m" ).chomp
    self.clave_sal, self.clave_dispersa =
      sal, Digest::SHA256.hexdigest(clave + sal)
  end

  def self.identificar(nombre, clave)
    usuario = Usuario.find(:first, :conditions => {:nombre => nombre})
    if usuario.blank? || 
       Digest::SHA256.hexdigest(clave + usuario.clave_sal) != usuario.clave_dispersa
      raise "Nombre o clave no validos" 
    end
    usuario
  end


end
